Secure Java Class Loading
نویسنده
چکیده
W hen Java technology burst onto the Internet scene in 1995, its developers declared the ambitious goal of providing a safe programming environment, especially for Web-based, dynamically composed, and mobile applications.1,2 OEM vendors and licensees could port the Java platform to their environment, such as browsers and operating systems, and inherit extensive built-in security features. Java’s security tools and services enabled independent software vendors to build a wider range of security-sensitive applications—for example, in the enterprise world—with minimal effort. Java’s original security model for these tools and services is known as the sandbox model. This model features a very restricted environment in which to run untrusted code (called applets) obtained from the open network.3 Essentially, the sandbox model trusts local code to have full access to vital system resources, such as the file system. However, the model does not trust downloaded remote code, so restricts its access to only a small set of limited resources. The Java Development Toolkit, versions 1.0.x, deploy this sandbox model, as do most applications built with JDK, including Java-enabled Web browsers. For more about the sandbox model, see the sidebar “The Mechanisms of Java Sandbox Security.” To extend the sandbox model, Sun Microsystems introduced signed applets with JDK 1.1.x in early 1997. In this model, Java treats a correctly digitally signed applet as trusted local code, if the end system that receives the applet recognizes the signature key as trusted. Developers deliver signed applets, together with their signatures, in the Java Archive format. In this article, I describe the more finely grained, permission-based access control architecture, and its relation to the class loading mechanism, that will be available in the JDK 1.2 release.
منابع مشابه
Security Risks in Java-based Mobile Code Systems
Java is the predominant language for mobile agent systems, both for implementing mobile agent execution environments and for writing mobile agent applications. This is due to inherent support for code mobility by means of dynamic class loading and separable class name spaces, as well as a number of security properties, such as language safety and access control by means of stack introspection. ...
متن کاملModeling the Java Bytecode Verifier
The Java programming language has been widely described as secure by design. Nevertheless, a number of serious security vulnerabilities have been discovered in Java, particularly in the Bytecode Verifier, a critical component used to verify class semantics before loading is complete. This paper describes a method for representing Java security constraints using the Alloy modeling language. It f...
متن کاملDynamicClass Loading in the Java VirtualMachine
Class loaders are a powerful mechanism for dynamically loading software components on the Java platform. They are unusual in supporting all of the following features: laziness, type-safe linkage, user-defined extensibility, andmultiple communicating namespaces. We present the notion of class loaders and demonstrate some of their interesting uses. In addition, we discuss how to maintain type saf...
متن کاملClass Loading Issues in JavaTM RMI and JiniTM Network Technology
Java class loading plays a key role in the Java Remote Method Invocation (Java RMI) and Jini architectures by enabling code mobility over the network. However, it has also saddled these architectures with a set of type compatibility and code downloading issues that commonly result in run-time errors and programmer confusion. This paper describes the Java RMI class loading model and examines its...
متن کاملMulti-Application Smart Cards: Card Operating Systems and Application Security
Multi-Application Smart Cards are becoming more prevalent in society as the need to secure electronic transactions increases for both e-commerce and identity verification purposes. This paper studies two Multi-Application Smart Cards and their Operating Systems, namely the MULTOS Card and the Sun Java Card. This research provides an in-depth analysis of the efficacy of the mechanisms used to ve...
متن کاملA class loading sensitive approach to detection of runtime type errors in component-based Java programs
Context: The employment of class loaders in component-based Java programs may introduce runtime type errors, which may happen at any statement related to class loading, and may be wrapped into various types of exceptions raised by JVM. Traditional static analysis approaches are inefficient to detect
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- IEEE Internet Computing
دوره 2 شماره
صفحات -
تاریخ انتشار 1998